// 给定一个正整数数组nums和整数k，找出该数组内乘积小于k的连续的子数组的个数

// 思路，滑动窗口，双指针,需要找到left开始的乘积小于k，则计算从right - left的子数组都满足要求
// 时间复杂度：O(n)
// 空间复杂度：O(1)
function numSubarrayProductLessThanK(arr, k) {
    if (k <= 1) {
        return 0
    }
    let ans = 0
    let left = 0
    let right = 0
    let product = 1
    while (right < arr.length) {
        product *= arr[right]
        while (product >= k) {
            product /= arr[left]
            left++
        }
        ans += right - left + 1
        right++
    }
    return ans
}

let arr = [10, 5, 2, 6]
let k = 100
console.log(numSubarrayProductLessThanK(arr, k));